這是滿多報表抓取資料的控制方式,透過參數來控制報表所要顯示的格式與內容,而這裡的參數可以由session,cookie,querystring,viewstate等型態的參數來產生報表資料,而我現在的公司正在開發許多表單程式,滿多報表的產生都是透過這樣的方式,而以下這一篇文章將介紹aspnet來透過參數來與reporting service結合的應用部份
在aspnet網頁裡頭,可以透過下列幾個方式來產生報表資料,網頁執行的畫面如下圖所示,使用者點選列印表單按鈕後,會開啟該筆資料對應的報表
連線到報表伺服器的語法如下
Dim script As String = String.Format("<script>window.open('http://192.168.1.3/ReportServer_SQLEXPRESS/Pages/ReportViewer.aspx?%2f%e5%a0%b1%e8%a1%a8%e5%b0%88%e6%a1%881%2fReport16&rs:Command=Render&rc:Parameters=false&id={0}&part=" & Left(c(1), 3) & "');</script>", c(0))
If Not ClientScript.IsClientScriptBlockRegistered(GetType, "test") Then
ClientScript.RegisterClientScriptBlock(GetType, "test", script, False)
End If
如此來動態產生報表內容,當然我們在reporting service要先設定好參數傳遞的名稱
語法的部份分別對應到參數的部份
也可以透過response.redirect直接導到報表伺服器來開啟指定的報表檔案
Response.Redirect("http://192.168.1.3/ReportServer_SQLEXPRESS?%2f%e5%a0%b1%e8%a1%a8%e5%b0%88%e6%a1%881%2fdevice&rs:Command=Render&rc:Parameters=false&unit=" & DropDownList2.SelectedValue & "&rs:Format=excel")